<!--SIF Implementation Specification 2.2-6 (March 17, 2008)-->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" targetNamespace="http://www.sifinfo.org/infrastructure/2.x" xmlns:sif="http://www.sifinfo.org/infrastructure/2.x" elementFormDefault="qualified">
  <xs:import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="imports/xml/xml.xsd" />
  <xs:complexType name="StudentSnapshotType">
    <xs:annotation>
      <xs:documentation>
							This object provides a snapshot of a student's record on a given day. All information reported in the object is
							reported as it appeared in the responding system on the date specified in SnapDate. It can be used for synching data
							across applications, for periodically loading a data warehouse, or for vertical reporting of data to a requesting
							authority, such as a state department of education.
						</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="Name" minOccurs="0" nillable="true" type="sif:NameType">
        <xs:annotation>
          <xs:documentation>The name of the student.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="LocalId" type="sif:LocalIdType">
        <xs:annotation>
          <xs:documentation>The locally-defined identifier for this student.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="StateProvinceId" minOccurs="0" nillable="true" type="sif:StateProvinceIdType">
        <xs:annotation>
          <xs:documentation>The state-assigned identifier for this student.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="Address" minOccurs="0" nillable="true" type="sif:AddressType">
        <xs:annotation>
          <xs:documentation>The address of the student.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="RaceList" minOccurs="0" nillable="true" type="sif:RaceListType">
        <xs:annotation>
          <xs:documentation>Person's race</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="HispanicLatino" minOccurs="0" nillable="true" type="sif:HispanicLatinoType" />
      <xs:element name="Gender" minOccurs="0" nillable="true" type="sif:GenderType">
        <xs:annotation>
          <xs:documentation>Person's gender.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="BirthDate" minOccurs="0" nillable="true" type="sif:BirthDateType">
        <xs:annotation>
          <xs:documentation>The person's date of birth.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="Age" minOccurs="0" nillable="true" type="xs:unsignedInt">
        <xs:annotation>
          <xs:documentation>The age (in years) of the student on the date in SnapDate.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="ProjectedGraduationYear" minOccurs="0" nillable="true" type="sif:ProjectedGraduationYearType">
        <xs:annotation>
          <xs:documentation>Currently projected graduation year.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="OnTimeGraduationYear" minOccurs="0" nillable="true" type="sif:OnTimeGraduationYearType">
        <xs:annotation>
          <xs:documentation>First projected graduation year, usually determined when student is accepted into ninth grade.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="GraduationDate" minOccurs="0" nillable="true" type="sif:GraduationDateType">
        <xs:annotation>
          <xs:documentation>Date student officially graduated from secondary education.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="GraduationAward" minOccurs="0" nillable="true">
        <xs:annotation>
          <xs:documentation>The award received upon graduation.</xs:documentation>
        </xs:annotation>
        <xs:simpleType>
          <xs:restriction base="xs:token">
            <xs:enumeration value="Diploma" />
            <xs:enumeration value="Certificate" />
            <xs:enumeration value="GED" />
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="GraduationOnTime" minOccurs="0" nillable="true">
        <xs:annotation>
          <xs:documentation>Did the student graduate in the expected number of years?</xs:documentation>
        </xs:annotation>
        <xs:simpleType>
          <xs:restriction base="xs:token">
            <xs:enumeration value="Yes" />
            <xs:enumeration value="No" />
            <xs:enumeration value="Unavailable" />
            <xs:enumeration value="NA" />
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="HomeEnrollment">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="StudentSchoolEnrollmentRefId" minOccurs="0" nillable="true" type="sif:IdRefType">
              <xs:annotation>
                <xs:documentation>The ID (GUID) of the StudentSchoolEnrollment object from which the enrollment information is derived.</xs:documentation>
              </xs:annotation>
            </xs:element>
            <xs:element name="SchoolName" minOccurs="0" nillable="true" type="xs:normalizedString">
              <xs:annotation>
                <xs:documentation>Name of the school.</xs:documentation>
              </xs:annotation>
            </xs:element>
            <xs:element name="SchoolInfoRefId" minOccurs="0" nillable="true" type="sif:IdRefType">
              <xs:annotation>
                <xs:documentation>
							The ID (GUID) of the school.  Provide both the HomeEnrollment/SchoolInfoRefId and HomeEnrollment/LocalId elements if possible.
							If not, one or the other must be provided.
						</xs:documentation>
              </xs:annotation>
            </xs:element>
            <xs:element name="LocalId" minOccurs="0" nillable="true" type="sif:LocalIdType">
              <xs:annotation>
                <xs:documentation>
							The locally-defined identifier for this school.
							Provide both the HomeEnrollment/LocalId and HomeEnrollment/SchoolId elements if possible.
							If not, one or the other must be provided.
						</xs:documentation>
              </xs:annotation>
            </xs:element>
            <xs:element name="StateProvinceId" minOccurs="0" nillable="true" type="sif:StateProvinceIdType">
              <xs:annotation>
                <xs:documentation>The state or province defined identifier for this school.</xs:documentation>
              </xs:annotation>
            </xs:element>
            <xs:element name="Status">
              <xs:annotation>
                <xs:documentation>Enrollment status as of the SnapDate.</xs:documentation>
              </xs:annotation>
              <xs:simpleType>
                <xs:restriction base="xs:token">
                  <xs:enumeration value="Active" />
                  <xs:enumeration value="Inactive" />
                  <xs:enumeration value="Unreported" />
                </xs:restriction>
              </xs:simpleType>
            </xs:element>
            <xs:element name="GradeLevel" type="sif:GradeLevelType">
              <xs:annotation>
                <xs:documentation>Grade or academic level of student.</xs:documentation>
              </xs:annotation>
            </xs:element>
            <xs:element name="Homeroom" minOccurs="0" nillable="true">
              <xs:complexType>
                <xs:simpleContent>
                  <xs:extension base="sif:IdRefType">
                    <xs:attribute name="SIF_RefObject" use="required">
                      <xs:annotation>
                        <xs:documentation>The name of the SIF object referenced.</xs:documentation>
                      </xs:annotation>
                      <xs:simpleType>
                        <xs:restriction base="xs:token">
                          <xs:enumeration value="RoomInfo" />
                        </xs:restriction>
                      </xs:simpleType>
                    </xs:attribute>
                  </xs:extension>
                </xs:simpleContent>
              </xs:complexType>
            </xs:element>
            <xs:element name="HomeroomNumber" minOccurs="0" nillable="true" type="sif:HomeroomNumberType">
              <xs:annotation>
                <xs:documentation>The locally-defined identifier for this room.</xs:documentation>
              </xs:annotation>
            </xs:element>
            <xs:element name="FullYearEnrollment" minOccurs="0" nillable="true">
              <xs:annotation>
                <xs:documentation>An indication as to whether or not the student was enrolled for the whole school year. If the SchoolYear is in progress as of the SnapDate, use the value "Unknown".</xs:documentation>
              </xs:annotation>
              <xs:simpleType>
                <xs:restriction base="xs:token">
                  <xs:enumeration value="Yes" />
                  <xs:enumeration value="No" />
                  <xs:enumeration value="Unknown" />
                </xs:restriction>
              </xs:simpleType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="IDEA" minOccurs="0" nillable="true" type="sif:IDEAType" />
      <xs:element name="Migrant" minOccurs="0" nillable="true" type="sif:MigrantType" />
      <xs:element name="Title1" minOccurs="0" nillable="true" type="sif:Title1Type" />
      <xs:element name="GiftedTalented" minOccurs="0" nillable="true" type="sif:GiftedTalentedType" />
      <xs:element name="EconomicDisadvantage" minOccurs="0" nillable="true" type="sif:EconomicDisadvantageType" />
      <xs:element name="ELL" minOccurs="0" nillable="true" type="sif:ELLType" />
      <xs:element name="Homeless" minOccurs="0" nillable="true" type="sif:HomelessType" />
      <xs:element name="Section504" minOccurs="0" nillable="true" type="sif:Section504Type" />
      <xs:element name="VocationalConcentrator" minOccurs="0" nillable="true" type="sif:VocationalConcentratorType" />
      <xs:element name="Immigrant" minOccurs="0" nillable="true" type="sif:ImmigrantType" />
      <xs:element name="NeglectedDelinquent" minOccurs="0" nillable="true" type="sif:NeglectedDelinquentType" />
      <xs:element name="FreeAndReducedStatus" minOccurs="0" nillable="true">
        <xs:annotation>
          <xs:documentation>Student's eligibility for free and reduced meals.</xs:documentation>
        </xs:annotation>
        <xs:simpleType>
          <xs:restriction base="xs:token">
            <xs:enumeration value="Free" />
            <xs:enumeration value="Reduced" />
            <xs:enumeration value="None" />
            <xs:enumeration value="NA" />
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="SIF_Metadata" minOccurs="0" nillable="true" type="sif:SIF_MetadataType" />
      <xs:element name="SIF_ExtendedElements" minOccurs="0" nillable="true" type="sif:SIF_ExtendedElementsType" />
    </xs:sequence>
    <xs:attribute name="SnapDate" use="required" type="xs:date">
      <xs:annotation>
        <xs:documentation>
							The date the data snapshot was taken.  
Some elements are provided/calculated as of the SnapDate, and some are provided as of the date the object is requested 
(i.e., some can be historical and some will represent the last information available/last known value).  
In a SIS the following elements are provided/calculated as of the SnapDate: Age, HomeEnrollment and all its child elements.  
Other applications (e.g., data warehouses) may be able to provide values for other elements on various snap dates.
						</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="StudentPersonalRefId" use="required" type="sif:IdRefType">
      <xs:annotation>
        <xs:documentation>The ID (GUID) of the student to whom this information relates.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="SchoolYear" use="required" type="sif:SchoolYearType">
      <xs:annotation>
        <xs:documentation>
							School year in which the SnapDate falls, and for which the information is applicable, expressed as the four-digit year
							in which the school year ends (e.g. 2007 for the 2006-07 school year).
						</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:complexType>

  <xs:element name="StudentSnapshot" type="sif:StudentSnapshotType" />

</xs:schema>